package com.heyun.utils;

public class MyArrayUtil {

    /**
     * 检查数组中是否存在指定的属性值。
     *
     * @param <T>           数组元素的类型
     * @param array         数组
     * @param propertyExtractor 属性提取器，用于从数组元素中提取属性值
     * @param targetValue   要查找的目标属性值
     * @return 如果数组中存在指定的属性值，则返回 true；否则返回 false
     */
    public static <T> boolean containsProperty(T[] array, java.util.function.Function<T, String> propertyExtractor, String targetValue) {
        if (array == null || propertyExtractor == null || targetValue == null) {
            return false; // 如果输入参数为 null，直接返回 false
        }

        for (T element : array) {
            if (element != null) {
                String propertyValue = propertyExtractor.apply(element);
                if (targetValue.equals(propertyValue)) {
                    return true; // 找到匹配的属性值，返回 true
                }
            }
        }
        return false; // 遍历完数组后没有找到匹配的属性值，返回 false
    }
}